livecodefandomcom_de-20200214-history
Repeat
"Repeat" ist der König der Looping-Strukturen in Livecode, lernen Sie es zu meistern, um jede sich wiederholende Aufgabe in Livecode zu realisieren. Verwenden Sie "repeat" nicht zum Überprüfen oder Abfangen von Benutzeraktionen, die Schleifenstruktur darf nur für automatisierte Prozesse verwendet werden; Andernfalls erstellen Sie fehlerhafte Endlosschleifen. Es hat viele Formen, jede Form passt zu speziellen Programmierstrategien, lassen Sie uns eins nach dem anderen analysieren. Forever(für immer oder ständig) repeat forever ist die gefährlichste Form, Sie können aus versehen unendliche Schleifen erstellen, also verwenden Sie es mit Bedacht! Sie müssen mindestens eine exit-Wiederholung einfügen, andernfalls erstellen Sie eine Endlosschleife, die das Programm festhält. Beispiel: if(wenn)....then(dann) exit(aussteigen) aus den Widerholungen put 0 into myVar repeat forever add 1 to myVar if myVar = 10 then exit repeat end if end repeat Until (bis) Diese Form wiederholt die Aktion, bis eine bestimmte Bedingung erfüllt ist, zum Beispiel: put 0 into myVar repeat until myVar = 10 answer myVar add 1 to myVar end repeat Das Beispiel zeigt nur 1 bis 9. Es wird nicht 10 angezeigt. While (solange, während) Diese Form wiederholt die Aktion, bis eine bestimmte Bedingung nicht mehr erfüllt ist. Beispiel: put 0 into myVar repeat while myVar < 10 answer myVar add 1 to myVar end repeat Das Beispiel zeigt nur 1 bis 9. Es wird nicht 10 angezeigt. For n times (Für n mal) Diese Form wiederholt die Aktion n mal (wobei n auch eine Variable sein kann), Beispiel: put 0 into myVar repeat for 10 times answer myVar add 1 to myVar end repeat Das Beispiel zeigt 1 bis 10. With (mit) Diese Form wiederholt mit meine Variable = x bis y , Beispiel: repeat with myVar=21 to 32 answer myVar end repeat Das Beispiel zeigt 21 bis 32. Sie können auch das Inkrement(schrittweise erhöhen (oder Dekrement verringern)) erzwingen, zum Beispiel: repeat with myVar=21 to 32 step 5 answer myVar end repeat Das Beispiel zeigt 21,26,31 und 36 !!! Bei 31 analysiert der repeat-code die Sequenz; Da es das Ende nicht erreicht hat, führt es einen weiteren Durchgang durch. Sie können auch verringern, schauen Sie sich die folgenden Beispiele an: repeat with myVar=21 down to 1 answer myVar end repeat repeat with myVar=21 down to 1 step -3 answer myVar end repeat For each (für jede) Dies ist eine sehr hilfreiche Struktur, die Sie mit einen Wort, Element, Array-Element oder Chunk(komplexere Ausdrücke) verwenden können. Wiederholt, je nach Bedingung, für jedes Wort(oder wie oben aufgeführt) die es in einer Variablen findet und verwendet es als eine lokale Variable, lassen Sie uns die Beispiele sehen. Elemente sind durch Kommas getrennte Werte: put "red,green,blue" into myVar repeat for each item temp in myVar answer temp end rep Das Beispiel zeigt separat rot, grün, blau. Wörter sind durch Leerzeichen getrennte Werte: put "red green blue" into myVar repeat for each item temp in myVar answer temp end repeat Das Beispiel zeigt separat rot, grün, blau. Chunk-Ausdrücke sind komplexere Ausdrücke, Sie können Zeile, Zeichen, Wort, Karte, Stapel, Skript, Element, Token verwenden: put "Hello world!" & return & "Hello world!" into myVar repeat for each line temp in myVar answer temp end repeat Das Beispiel zeigt separat "Hallo Welt!" zweimal. Wie sieht es mit Array aus: put 1 into myVar"Mario" put 2 into myVar"Luigi" repeat for each element temp in myVar answer temp end repeat Das Beispiel zeigt 1 und 2. Es funktioniert jedoch nur auf der ersten Ebene des Arrays, nicht für die Unterebenen, also zeigt es nicht myVar "Mario" "Auto"; Verwenden Sie die key-Funktion. Beispiel: put 1 into myVar"Mario" put 2 into myVar"Luigi" repeat for each Key temp in myVar answer temp end repeat Sie bekommen: Mario, Luigi. If you need to travel to all keys, but you need to modify them, use 2 arrays: one copy of the other: function svuotaArray tarr repeat for each key tKey in tArr put empty into tArr2tKey put svuotaArray(tArrtkey) into tArr2tkey end repeat return tArr2 end svuotaArray Next repeat Überspringt den Rest der aktuellen Iteration und kehrt an die Spitze der Wiederholungsstruktur zurück.Verwenden Sie die nächste Wiederholungssteuerungsstruktur, um einen Teil einer Wiederholungsschleife zu überspringen. Die nächste Wiederholungskontrollstruktur überspringt den Rest der aktuellen Iteration und fährt mit der nächsten Iteration fort. Im folgenden Beispiel wird die Schleifenaktion nur ausgeführt, wenn der Name der aktuellen Karte den Buchstaben "e" enthält: repeat for the number of cards of this stack go to next card if "e" is in the short name of this card then next repeat end if put the short name of this card & return after myCardsList end repeat Normalerweise wird next repeat innerhalb einer if-Kontrollstruktur verwendet, so dass die aktuelle Iteration übersprungen wird, wenn eine Bedingung wahr ist, und fortfährt, wenn die Bedingung falsch ist. Category:Script Category:Text processing Category:Array